﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sistema.NFe.Xml.Versao200
{
    public class XmlRetornoInutilizacaoNFe200 : Sistema.NFe.Xml.Interfaces.IXmlRetornoInutilizacao
    {
         Int32 _status;
        String _descricaoStatus;
        String _xml;
        long _protocolo;
        DateTime _dataInutilizacao;
        String _cUf;
        String _ano;
        String _cnpj;
        String _mod;
        String _serie;
        String _numeroInicio;
        String _numeroFim;

       

        #region Propriedades

        public String Mod
        {
            get { return _mod; }
            set { _mod = value; }
        }

        public String Cnpj
        {
            get { return _cnpj; }
            set { _cnpj = value; }
        }

        public String Ano
        {
            get { return _ano; }
            set { _ano = value; }
        }

        public String CUf
        {
            get { return _cUf; }
            set { _cUf = value; }
        }

        public String NumeroInicio
        {
            get { return _numeroInicio; }
            set { _numeroInicio = value; }
        }
        public String NumeroFim
        {
            get { return _numeroFim; }
            set { _numeroFim = value; }
        }
        public String Serie
        {
            get { return _serie; }
            set { _serie = value; }
        }
        public DateTime DataInutilizacao
        {
            get { return _dataInutilizacao; }
            set { _dataInutilizacao = value; }
        }

        public long Protocolo
        {
            get { return _protocolo; }
            set { _protocolo = value; }
        }
        
        public String DescricaoStatus
        {
            get { return _descricaoStatus; }
            set { _descricaoStatus = value; }
        }

        public Int32 Status
        {
            get { return _status; }
            set { _status = value; }
        }

        public String Xml
        {
            set { CarregaDadosXml(value); }
        }

        #endregion

        public XmlRetornoInutilizacaoNFe200()
        {
            this._status = Int32.MinValue;
            this._descricaoStatus = string.Empty;
        }

        private void CarregaDadosXml(string Xml)
        {
            Mapeamento.TRetInutNFe dadosInutilizacao = new Util.Serializacao().Deserialize<Mapeamento.TRetInutNFe>(Xml);
            Int32.TryParse(dadosInutilizacao.infInut.cStat, out this._status);
            long.TryParse(dadosInutilizacao.infInut.nProt, out this._protocolo);
            this._dataInutilizacao = dadosInutilizacao.infInut.dhRecbto;
            this._descricaoStatus = dadosInutilizacao.infInut.xMotivo;
            this.Cnpj = dadosInutilizacao.infInut.CNPJ;
            this.CUf = dadosInutilizacao.infInut.cUF.ToString();
            this.Ano = dadosInutilizacao.infInut.ano;
            this.Mod = dadosInutilizacao.infInut.mod.ToString();
            this.NumeroFim = dadosInutilizacao.infInut.nNFFin;
            this.NumeroInicio = dadosInutilizacao.infInut.nNFIni;
            this.Serie = dadosInutilizacao.infInut.serie;
        }
    }
}
